package com.yugao.fintech.antelope.base.model.enums;

import com.yugao.fintech.framework.assistant.utils.exception.BizException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Objects;

/**
 * 数据组业务枚举

 */
@Getter
@AllArgsConstructor
public enum DataGroupBizTypeEnum {
    /** 素材分组 */
    MATERIAL(1),
    /** 字典组 */
    DICT(2),
    /** 配置组 */
    CONFIG(3),
    /** 消息推送任务功能组 */
    MSG_PUSH_TASK(4),

    ;

    private final Integer type;

    public static void checkExistByType(Integer type) {
        if (Arrays.stream(values()).noneMatch(e -> Objects.equals(e.type, type))) {
            throw new BizException("数据组类型不存在, type: {}", type);
        }
    }

    public static DataGroupBizTypeEnum ofByType(Integer type) {
        return Arrays.stream(values()).filter(e -> e.getType().equals(type)).findFirst()
                .orElseThrow(() -> new BizException("数据组不存在, type: {}", type));
    }
}
